/**
 ***********************************************************************************************************
 * 
 ***********************************************************************************************************
 * @file RBPlane.h
 ***********************************************************************************************************/

#pragma once

#ifdef  HEADER_MSG
#pragma HEADER_MSG(Plane.h)
#endif

/***********************************************************************************************************
 * Includes
 ***********************************************************************************************************/
#include "Foundation/Platform/Types.h"

/***********************************************************************************************************
 * Forward declarations
 ***********************************************************************************************************/

/***********************************************************************************************************
 * Classes
 ***********************************************************************************************************/
namespace RB
{
namespace Math
{

class Plane
{
public:
    // For Performance reasons, we suppose that m_Normal is always a Unit vector
    // Plane Equation is Normal * (x,y,z) + Distance = 0
    // Ax+By+Cz+D = 0
				Plane       ();
    virtual    ~Plane       ();

    void        Build       (const float4& normal, const float4& point);

    float4      ABCD;

};
}
}

/***********************************************************************************************************/
